RunAsDate v1.41 - Run a program with the specified date/time
Copyright (c) 2007 - 2022 Nir Sofer

See Also

Description

RunAsDate is a small utility that allows you to run a program in the date and time that you specify. This utility doesn't change the current system date and time of your computer, but it only injects the date/time that you specify into the desired application.
You can run multiple applications simultaneously, each application works with different date and time, while the real date/time of your system continues to run normally.

How does it work ?

RunAsDate intercepts the kernel API calls that returns the current date and time (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime, NtQuerySystemTime, GetSystemTimePreciseAsFileTime), and replaces the current date/time with the date/time that you specify.

System Requirements

RunAsDate works under Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, Windows 7, Windows 8, and Windows 10. Older versions of Windows are not supported. There is also x64 version available in a separated download, for using with x64 applications.

Important Notice !!
I get many email messages that say something like "I tried to extend the trial period of xyz software with RunAsDate and it didn't work". Running a software with different date/time can be used for many legitimate purposes and for these purposes RunAsDate was created. I have never said implicitly or explicitly that RunAsDate can be used for extending the trial period of a software. For some shareware programs, RunAsDate might really work, but many shareware creators are smart enough to detect that the date/time was modified and when they detect the time change, they end the trial period immediately.
Please don't bother yourself to send me a question about extending the trial period of a software, because these kind of messages are simply deleted without answering.

Versions History

  • Version 1.41:
    • You can now attach to a process from command-line. You can specify the process filename or process ID, for example:
      RunAsDate.exe 25\04\2005 17:12:15 Attach:Outlook.exe
      RunAsDate.exe 25\04\2005 17:12:15 Attach:2756
  • Version 1.40:
    • Added 'Attach To Process' option. Before using this feature, read this.
  • Version 1.37:
    • Fixed bug: RunAsDate failed to work properly when using the 32-bit and the 64-bit versions in the same time.
    • Also, the DLL file of RunAsDate is now deleted automatically when you close the main window of RunAsDate (If it's not locked).
  • Version 1.36:
    • Added 'Run As Administrator' button to easily run RunAsDate as Administrator. You have to run RunAsDate as Administrator when the program you want to run with RunAsDate requires elevation.
  • Version 1.35:
    • RunAsDate now displays an error message if you try to run 32-bit program with 64-bit version of RunAsDate or 64-bit program with 32-bit version of RunAsDate.
    • RunAsDate now displays an error message if it fails to run the specified .exe file.
    • RunAsDate now also intercepts the NtQuerySystemTime and GetSystemTimePreciseAsFileTime API functions.
    • RunAsDate now also intercepts the date/time functions on kernelbase.dll (in addition to kernel32.dll). This change solves the issue with cmd.exe on Windows 10 (it uses the APIs on kernelbase.dll )
  • Version 1.31:
    • Fixed bug: When a program executed with RunAsDate requested to get the current time in GMT (GetSystemTime and GetSystemTimeAsFileTime API), RunAsDate provided the wrong time with a difference of one hour if the computer date was in summer (With daylight saving time) but the selected RunAsDate date was in winter (Without daylight saving time) and vice versa...
  • Version 1.30:
    • Added option to set the date/time relative to the current time. You can add (positive number) or subtract (negative number) the following time units: seconds, minutes, hours, days, months, and years.
    • Added 'Start in folder' option.
    • RunAsDate now saves the last settings to config file (RunAsDate.cfg)
  • Version 1.21:
    • Fixed bug with 'Move the time forward according to the real time' option: After around 7 minutes from the time that the application was started, RunAsDate failed to calculate the time properly.
  • Version 1.20:
    • Added 'Return to the current date/time after xx seconds' option.
  • Version 1.16:
    • Fixed bug: RunAsDate removed a quote character when using it in the {Program parameters} section of the command-line string.
  • Version 1.15:
    • Fixed RunAsDate to work properly on Windows 8 64-bit.
  • Version 1.11:
    • Added Drag & Drop support: You can now choose the .exe file to run by dragging it from Explorer into the main window of RunAsDate.
  • Version 1.10:
    • Added auto complete support in the filename field.
    • Added x64 version.
  • Version 1.05:
    • Fixed bug: When using 'Create Desktop Shortcut', the /immediate and /movetime options were not added to the shortcut's command-line
  • Version 1.04:
    • The main dialog-box is now resizable.
  • Version 1.03:
    • Added 'Immediate Mode' - Change the date immediately when the program starts.
  • Version 1.02:
    • New option: Move the time forward according to the real time.
  • Version 1.01:
    • New option: Create a shortcut on your desktop that will run a program with the date/time that you specify.
    • When you don't specify the time in the command-line, the current time will be used, instead of 00:00:00.
  • Version 1.00 - First release.

Using RunAsDate

RunAsDate doesn't require any installation process or additional DLL files. In order to start using it, simply copy the executable file (RunAsDate.exe) to any folder you like, and run it.
In the main window of RunAsDate, select the desired date and time and the application that you want to run. Optionally, you can also specify the command-line parameters to run the program. Press the "Run" button to start the application with the specified date/time.

Immediate Mode

In versions prior to 1.03, RunAsDate always waited until the kernel was fully loaded, and only then injected the desired date/time. This mean that some programs that get the date/time im very early stage, received the real current date/time, instead of the fake date/time of RunAsDate. Starting from version 1.03, when the 'Immediate Mode' is turned on, RunAsDate inject the date/time immediately when the process starts, without waiting to the kernel loading. However, this mode can also cause troubles to some applications, especially if they were written in .NET

If executing an application from RunAsDate cause it to crash, you should turn off the 'Immediate Mode'.

Attach To Process

Starting from version 1.40, RunAsDate allows you to attach a running process, instead of creating a new one. After the dll of RunAsDate is attached to the process, the process will see the current date/time according to the settings you selected in the main window of RunAsDate.
In order to use this feature, select the desired date/time settings, click the 'Attach To Process' , select the desired process, and then click the 'Attach To Selected Process' button.

Before start using this feature, be aware:

  • Currently, there is no option to detach from process.
  • If you attach to a process more than once, the newer time settings will override the previous time settings. It's important to say that this tool is not designed for attaching a process multiple times. It's just a side effect that may be useful for some people.
  • When using the 'Attach To Process' feature, there is higher risk that the application will crash.
  • It's highly recommended to avoid from attaching a system process or critical process.
  • In order to attach a 64-bit process, you have to use the 64-bit version of RunAsDate.
  • In order to attach an elevated process, you have to run the RunAsDate tool as Administrator.

Using RunAsDate from Command-Line

You can also use RunAsDate from command-line, with the following syntax:
RunAsDate.exe {/immediate} {/movetime} {/startin [folder]} {/returntime [seconds] } [dd\mm\yyyy] {hh:mm:ss} [Program to run] {Program parameters}

Examples:
RunAsDate.exe 22\10\2002 12:35:22 "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE"
RunAsDate.exe 14\02\2005 "c:\temp\myprogram.exe" param1 param2
RunAsDate.exe /movetime 11\08\2004 16:21:42 "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE"
RunAsDate.exe /movetime /returntime 15 10\12\2001 11:41:26 "c:\temp\myprogram.exe"
RunAsDate.exe Hours:-10 "C:\Program Files\Microsoft Office\OFFICE11\OUTLOOK.EXE"
RunAsDate.exe 22\03\2008 10:10:25 Attach:Outlook.exe
RunAsDate.exe 20\08\2003 20:20:45 Attach:2744

RunAsDate Limitations

  • RunAsDate will not affect applications that take the current date/time from another source. For example: application that loads the current date from remote server.
  • RunAsDate may cause some applications to crash.

Translating RunAsDate To Another Language

RunAsDate allows you to easily translate all dialog-boxes and other strings to other languages.
In order to do that, follow the instructions below:
  1. Run RunAsDate with /savelangfile parameter:
    RunAsDate.exe /savelangfile
    A file named RunAsDate_lng.ini will be created in the folder of RunAsDate utility.
  2. Open the created language file in Notepad or in any other text editor.
  3. Translate the dialog-boxes and string entries to the desired language.
  4. After you finish the translation, Run RunAsDate, and all translated strings will be loaded from the language file.
    If you want to run RunAsDate without the translation, simply rename the language file, or move it to another folder.

License

This utility is released as freeware. You are allowed to freely distribute this utility via floppy disk, CD-ROM, Internet, or in any other way, as long as you don't charge anything for this. If you distribute this utility, you must include all files in the distribution package, without any modification !
Be aware that selling this utility as a part of a software package is not allowed !

Disclaimer

The software is provided "AS IS" without any warranty, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The author will not be liable for any special, incidental, consequential or indirect damages due to loss of data or any other reason.

Feedback

If you have any problem, suggestion, comment, or you found a bug in my utility, you can send a message to nirsofer@yahoo.com.
Don't send me any question or request about extending the trial period of a software, this kind of message is simply deleted without answering.

Download RunAsDate
Download RunAsDate for x64

 
 



 

 

RunAsDate is also available in other languages. In order to change the language of RunAsDate, download the appropriate language zip file, extract the 'runasdate_lng.ini', and put it in the same folder that you Installed RunAsDate utility.

LanguageTranslated ByDateVersion
Filipino Paolo Rodriguez07/11/20131.0.0.201311061300
Afrikaans Bezman26/12/2011 1.0
Arabic ماجد الحسين Magid Hussein02/10/2007 
Bosnian Max19/06/20101.10
Brazilian PortuguesePaulo Guzmán30/03/20131.16
Bulgarian Георги Цветанов16/07/20171.35
CzechMilan Malý02/07/20191.37
DutchJan Verheijen09/06/20221.41
DutchDutch - by Egbert van den Bosch03/01/20101.0
Farsi PDN06/11/2009 
FinnishOlli22/10/2007 
French Eric FICHOT10/08/20221.41
French https://www.leblogduhacker.fr23/04/20191.37
Galician Xosé Antón Vicente Rodríguez07/04/2008 
German «Latino» auf WinTotal.de07/12/20211.40
Greek geogeo.gr15/12/20171.36
GreekΒασίλης Κοσμίδης (SkyHi)31/12/2008 
HindiVASEEM AKRAM27/02/20211.30
HungarianLa_Valse22/11/20181.36
Italian BubuXP31/03/20201.37
ItaliantheReAcE11/01/20171.31
Japanesecoolz20/03/20161.30
Latvian Nizaury07/02/2011 
Lithuanian Gintarmixas26/03/2013 
Persian DinoTechno12/06/20221.41
PolishRavJ8110/08/20221.41
Portuguese Neliton P.10/05/2008 
Portuguese BrasilCristiano Prates18/10/2008 
Romanian Jaff (Oprea Nicolae)05/02/20161.30
Romanian Jaff (Oprea Nicolae)08/12/20111.11
RussianDmitry Yerokhin26/12/20211.40
Simplified Chinese WirGeek11/12/20211.40
Simplified Chinese DickMoore14/12/20211.40
Simplified Chinese syshut09/01/20181.36
SerbianVladimirom Zrnicem17/05/20151.30
SlovakFrantišek Fico20/06/20221.41
SlovenianErik Klavora15/03/2008 
SpanishMichelpuri26/06/20221.41
SpanishNewAge22/03/20161.30
Swedish Göran Helsingborg10/07/20191.31
Traditional Chinese Danfong Hsieh11/12/20211.40
Thai E b o k24/11/20081.05
Turkish HARUN ARI09/06/20221.41
UkrainianA.S.31/07/20221.41
Valencian vjatv22/06/20091.10
Vietnamese Bùi Nguyễn Phương Duy14/01/2015